package org.yelongframework.excel.data.fill.sheet;

import java.util.Objects;

/**
 * 工作表数据填充方案
 * 
 * @since 1.0.0
 */
public abstract class SheetDataFillScheme {

	/** 工作表数据填充模式 */
	private final SheetDataFillMode sheetDataFillMode;

	// ==================================================构造器==================================================

	/**
	 * @param sheetDataFillMode 工作表数据填充模式
	 */
	public SheetDataFillScheme(SheetDataFillMode sheetDataFillMode) {
		this.sheetDataFillMode = Objects.requireNonNull(sheetDataFillMode, "sheetDataFillMode");
	}

	// ==================================================填充模式==================================================

	/**
	 * @return 工作表数据填充模式
	 */
	public SheetDataFillMode getSheetDataFillMode() {
		return sheetDataFillMode;
	}

	// ==================================================验证属性==================================================

	/**
	 * 校验数据是否符合规范
	 * 
	 * @throws SheetDataFillException 工作表数据填充异常
	 */
	public abstract void check() throws SheetDataFillException;

}
